package controle;

import java.util.ArrayList;
import java.util.List;

import DAO.VendaIngressoDAO;
import DAO.DAOFactory;

import modelo.VendaIngresso;
import modelo.VendaIngresso;
/**
 * 
 * @author douglas_joaquim
 *
 *ControleVendaIngresso implementa VendaIngresso
 */
public class ControleVendaIngresso implements Controle<VendaIngresso> {
/**
 * Salva ou altera Venda de Ingressos
 */
	@Override
	public void salvar(VendaIngresso e) throws Exception {
	if(e.getIngresso().equals("")){
		throw new Exception("Ingresso obrigatorio");
	}
	if(e.getVenda().equals("")){
		throw new Exception("Venda obrigatorio");
	}
	VendaIngressoDAO vendaIngressoDAO = DAOFactory.getVendaIngressoDAO();
	vendaIngressoDAO.salvar(e);
	}
/**
 * Exlcui venda de ingresso 
 * mas como n@o pode excluir venda de ingresso
 * ele est@ depreciado
 */
	@Override
	@Deprecated
	public void excluir(VendaIngresso e) {
		VendaIngressoDAO vendaIngressoDAO = DAOFactory.getVendaIngressoDAO();
		vendaIngressoDAO.deletar(e);
		
	}
/**
 * Busca cria e retorna uma lista de ingresso por idIngresso ou idvenda
 */
	@Override
	public List<VendaIngresso> buscar(VendaIngresso e) throws Exception {
		VendaIngressoDAO vendaIngressoDAO = DAOFactory.getVendaIngressoDAO();
		List<VendaIngresso> ingressos = new ArrayList<VendaIngresso>();
		if(e.getIngresso() != null){
			ingressos = vendaIngressoDAO.buscaVendaIngressoPorIdIngresso(e);
		}else if(e.getVenda() != null){
			ingressos = vendaIngressoDAO.buscaVendaIngressoPorIdVenda(e);
		}else{
			throw new Exception("Venda ou ingresso sao necessarios");
		}
		return ingressos;
	}
/**
 * Busca, cria e retorna uma lista de todas vendas de ingressos
 */
	@Override
	public List<VendaIngresso> buscarTodos(){
		List<VendaIngresso> vendaIngressos = new ArrayList<VendaIngresso>();
		VendaIngressoDAO vendaIngressoDAO = DAOFactory.getVendaIngressoDAO();
		vendaIngressos = vendaIngressoDAO.findAll();
		return vendaIngressos;

	}

}
